package com.yanfan.attach.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.yanfan.common.annotation.Excel;
import com.yanfan.iot.domain.Device;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 设备对象 iot_device
 *
 * @author kerwincui
 * @date 2021-12-16
 */
@Getter
@Setter
@ToString
@TableName("iot_device_detail")
public class DeviceDetail extends Device {
    private static final long serialVersionUID = 1L;

    private Long detailId;
    /**
     * 产品分类ID
     */
    private Long deviceId;

    private Long userId;

    private String deptName;

    /**
     * 设备传输协议
     */
    private String transport;

    /**
     * 设备编号姓名
     */
    @Excel(name = "设备编号名称")
    private String serialNumberName;

    /**
     * 车间外键
     */
    @Excel(name = "车间id")
    private Long workshopId;

    /**
     * 规格
     */
    @Excel(name = "规格")
    private String specs;

    /**
     * 点位
     */
    @Excel(name = "点位")
    private String point;

    /**
     * 车间名称
     */
    @Excel(name = "车间名称")
    private String shopName;

    /**
     * 楼栋id
     */
    @Excel(name = "楼栋id")
    private Integer buildingId;

    /**
     * 楼栋名称
     */
    @Excel(name = "楼栋名称")
    private String buildingName;

    /**
     * 能源typeID
     */
    @Excel(name = "能源类型id")
    private Integer energyId;

    /**
     * 能源类型
     */
    @Excel(name = "能源类型名称")
    private String energyName;

    /**
     * 工时(H)
     *
     * @author caijinkang
     * @date 2023/3/14 16:04
     * @param null
     * @return null
     */
    @Excel(name = "工时")
    private Integer manHour;

    /**
     * 功率(W)
     *
     * @author caijinkang
     * @date 2023/3/14 16:05
     * @param null
     * @return null
     */
    @Excel(name = "功率")
    private Integer power;

    /**
     * 设备价格
     *
     * @author caijinkang
     * @date 2023/3/14 16:05
     * @param null
     * @return null
     */
    @Excel(name = "价格")
    private Double price;

    /**
     * 所属公司id
     *
     * @author caijinkang
     * @date 2023/3/14 16:07
     * @param null
     * @return null
     */
    @Excel(name = "所属公司id")
    private Integer artsVisionId;

    /**
     * 所属公司
     *
     * @author caijinkang
     * @date 2023/3/14 16:06
     * @param null
     * @return null
     */
    @Excel(name = "所属公司")
    private String artsVision;

    /**
     * 所属工艺id
     *
     * @author caijinkang
     * @date 2023/3/14 16:07
     * @param null
     * @return null
     */
    @Excel(name = "所属工艺id")
    private Integer craftId;

    /**
     * 所属工艺名称
     *
     * @author caijinkang
     * @date 2023/3/14 16:08
     * @param null
     * @return null
     */
    @Excel(name = "所属工艺名称")
    private String craftName;

    /**
     * 所属系统id
     *
     * @author caijinkang
     * @date 2023/3/14 16:11
     * @param null
     * @return null
     */
    @Excel(name = "所属系统id")
    private Integer systemId;

    /**
     * 所属系统名称
     *
     * @author caijinkang
     * @date 2023/3/14 16:13
     * @param null
     * @return null
     */
    @Excel(name = "物模型")
    private String systemName;

    /**
     * 所属类别id
     *
     * @author caijinkang
     * @date 2023/3/14 16:15
     * @param null
     * @return null
     */
    @Excel(name = "所属类别id")
    private Integer categoryId;

    /**
     * 所属类别名称
     *
     * @author caijinkang
     * @date 2023/3/14 16:15
     * @return java.lang.Integer
     */
    @Excel(name = "所属类别名称")
    private String categoryName;

    /**
     * 所属小组id
     *
     * @author caijinkang
     * @date 2023/3/14 16:16
     * @param null
     * @return null
     */
    @Excel(name = "所属小组id")
    private Integer groupsId;

    /**
     * 所属小组名称
     *
     * @author caijinkang
     * @date 2023/3/14 16:16
     * @return java.lang.Integer
     */
    @Excel(name = "所属小组名称")
    private String groupName;

    /**
     * 所在位置（厂区名称）
     *
     * @author caijinkang
     * @date 2023/3/14 17:10
     * @param null
     * @return null
     */
    @Excel(name = "所在位置")
    private Integer plantId;

    /**
     * 所在位置
     *
     * @author caijinkang
     * @date 2023/3/31 16:12
     * @param null
     * @return null
     */
    private String plantName;

    /**
     * 开始时间
     *
     * @author caijinkang
     * @date 2023/3/14 17:11
     * @param null
     * @return null
     */
    @Excel(name = "开始时间")
    private String beginDate;

    /**
     * 结束时间
     *
     * @author caijinkang
     * @date 2023/3/14 17:12
     * @param null
     * @return null
     */
    @Excel(name = "结束时间")
    private String endDate;

    /**
     * 品牌id
     *
     * @author caijinkang
     * @date 2023/3/16 13:57
     * @param null
     * @return null
     */
    @Excel(name = "品牌id")
    private Integer brandId;

    /**
     * 品牌名称
     *
     * @author caijinkang
     * @date 2023/3/16 13:58
     * @param null
     * @return null
     */
    @Excel(name = "品牌名称")
    private String brandName;

    /**
     * 型号id
     *
     * @author caijinkang
     * @date 2023/3/16 18:05
     * @param null
     * @return null
     */
    @Excel(name = "型号id")
    private Integer modelId;

    /**
     * 型号名称
     *
     * @author caijinkang
     * @date 2023/3/16 18:05
     * @return java.lang.Integer
     */
    @Excel(name = "型号名称")
    private String modelName;

    /**
     * 厂家id
     *
     * @author caijinkang
     * @date 2023/3/31 16:57
     * @param null
     * @return null
     */
    @Excel(name = "厂家id")
    private Integer venderId;

    /**
     * 厂家名称
     *
     * @author caijinkang
     * @date 2023/3/31 16:59
     * @param null
     * @return null
     */
    @Excel(name = "厂家名称")
    private String venderName;

    /**
     * 安装机位
     *
     * @author caijinkang
     * @date 2023/4/3 15:30
     * @param null
     * @return null
     */
    @Excel(name = "安装机位")
    private String placement;

    /**
     * 出厂时间
     *
     * @author caijinkang
     * @date 2023/4/3 15:30
     * @param null
     * @return null
     */
    @Excel(name = "出厂时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leaveDate;

    /**
     * @author caijinkang
     * @date 2023/4/3 17:25
     * @param null
     * @return null
     */
    @Excel(name = "得分（1、优秀100分，2、良好80分，3、一般60分，4、较差30分，5、故障0分）")
    private Integer score;

    /**
     * 联网方式（1=wifi、2=蜂窝(2G/3G/4G/5G)、3=以太网、4=其他）
     *
     * @author caijinkang
     * @date 2023/4/4 15:37
     * @param null
     * @return null
     */
    private Integer networkMethod;

    /**
     * 上一次保养时间
     *
     * @author caijinkang
     * @date 2023/4/4 17:26
     * @param null
     * @return null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastEndDate;

    /**
     * 倒计时天数
     *
     * @author caijinkang
     * @date 2023/4/4 17:24
     * @param null
     * @return null
     */
    private Integer days;

    /**
     * 购买日期
     *
     * @author caijinkang
     * @date 2023/4/9 15:33
     * @param null
     * @return null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date buyDate;

    /**
     * 购买日期
     *
     * @author caijinkang
     * @date 2023/4/9 15:33
     * @param null
     * @return null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 购买日期
     *
     * @author caijinkang
     * @date 2023/4/9 15:33
     * @param null
     * @return null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 判断是不是从故障设备进入
     */
    private Integer breakDeviceFlag;

    private String location;

    //
    private String userName;

    /*采购部门*/
    private String purchaseDeptName;
    /*采购人员名称*/
    private String purchaseUserName;
    /*路线ID 仅用户查询*/
    private String routeId;

    /**
     * 设备维修状态 1:未安装、2:安装、3:维修、4:报废
     */
    private int devcieStatus;

}
